package com.iaz.tech.tools.generator.java;

import java.util.List;

import com.iaz.tech.tools.generator.core.ICodeGeneratorAble;
import com.iaz.tech.tools.property.IPropertyAble;
import com.iaz.tech.tools.uml.IUMLNeuronAble;
/**
 * JAVA 代码生成的接口
 * 
 */
public interface IJavaCodeGeneratorAble extends ICodeGeneratorAble {
	/**
	 * 生成头部内容，用于
	 * @param content     对象
	 * @param properties  属性
	 * @return
	 */
	String generatorHeader(IUMLNeuronAble content, IPropertyAble properties);
	/**
	 * 动态
	 * @param content
	 * @param properties
	 * @return
	 */
	String generatorDynamicHeader(IUMLNeuronAble content, IPropertyAble properties);
	/**
	 * 生成Class 的body
	 * @param content	  	对象
	 * @param properties	属性
	 * @return
	 */
	String generatorClassBody(List<IUMLNeuronAble> content, IPropertyAble properties);
	/**
	 * 生成Interface 的body
	 * @param content		对象
	 * @param properties	属性
	 * @return
	 */
	String generatorInterfaceBody(List<IUMLNeuronAble> content, IPropertyAble properties);
	/**
	 * 生成内容
	 * @param content
	 * @param properties
	 * @return
	 */
	String generatorBody(IUMLNeuronAble content, IPropertyAble properties);
	/**
	 * 生成属性
	 * @param content
	 * @param properties
	 * @return
	 */
	String generatorProperty(IUMLNeuronAble content, IPropertyAble properties);
	/**
	 * 生成函数
	 * @param content
	 * @param properties
	 * @return
	 */
	String generatorFunction(IUMLNeuronAble content, IPropertyAble properties);
}
